//使用字面量进行类型声明

let ac: 10;
ac = 10;

//可以使用|来链接多个类型（联合类型）
let bc: 'male' | 'female';

let cc: boolean | string;

// any表示任意类型 相当于关闭了该变量的ts类型检测
// 不建议使用any类型
let dc: any; //显式any
let ec; //隐式any 声明不指定类型

//unknown 表示位置类型的值
let fc: unknown;

//any可以赋值给任意类型变量
//unknown不允许赋值给其他类型变量
//unknown 实际上是一个类型安全的any

//类型断言 用来告诉编译器变量的实际类型
let s = fc as string;
s = <string>fc;
/*
*   变量 as 类型
*
*   <类型> 变量
*/

//void 表示空 以函数为例 表示没有返回值的函数
function fn(): void {
  return
}

//never 表示永远不会返回结果
function fn2(): never {
  throw new Error('error')
}